#ifndef _FONT_MANAGER_H
#define _FONT_MANAGER_H

#include <common.h>

// 描述一个字符的位图信息，但是不涉及绘制这个行为！！
typedef struct FontBitMap
{   
    Region tRegion; // 字符绘制的区域
    int iCurOriginX; // 当前字符渲染的起始x坐标
	int iCurOriginY; // 当前字符渲染的起始y坐标
	int iNextOriginX; // 下一个渲染位置的x坐标
	int iNextOriginY; // 下一个渲染位置的y坐标
    unsigned char *pPixelDatas; // PixelDatas就是真正存放字符位图数据的内存，*pPixelDatas是这个内存的指针
}FontBitMap, *PFontBitMap;


typedef struct FontOpr
{   
    char *name; // 字体操作名称，如 "freetype", "ascii", "unicode"
    int (*FontInit)(char *fontFile);// 初始化字体，例如加载ttf文件等
    int (*SetFontSize)(int iFontSize);
    int (*GetFontBitMap)(unsigned int dwCode, PFontBitMap ptFontBitMap); // 获取某个字符的位图信息
    struct FontOpr *ptNext;
}FontOpr, *PFontOpr;


void RegisterFTtoFontList(void);
void RegisterFont(FontOpr *ptFontOpr);
int ChooseDefaultFontOprAndInit(char *FontOprName, char *FontFileName);
int SetFontSize(int iFontSize);
int GetFontBitMap(unsigned int dwCode, PFontBitMap ptFontBitMap);
int RegisterAllFonts(void);

#endif